লারাভেল (Laravel) ফ্রেমওয়ার্কে ফাইল স্টোরেজ ব্যবস্থা অত্যন্ত শক্তিশালী এবং নমনীয়। এটি ডেভেলপারদের ফাইল আপলোড, সংরক্ষণ এবং ব্যবস্থাপনা খুব সহজ করে তোলে। লারাভেল ফাইল স্টোরেজ সিস্টেমের মাধ্যমে আপনি স্থানীয় ড্রাইভ (Local disk), ক্লাউড স্টোরেজ (যেমন Amazon S3, Google Cloud, etc.) বা FTP-তে ফাইল সংরক্ষণ করতে পারেন।
লারাভেল ফাইল স্টোরেজ সিস্টেম Storage
ফ্যাসাড (Facade) ব্যবহার করে পরিচালিত হয়, যা ডিফল্টভাবে লারাভেলের কনফিগারেশন ফাইলে সংরক্ষিত থাকে। Storage
ফ্যাসাডের মাধ্যমে বিভিন্ন ধরনের ফাইল অপারেশন যেমন ফাইল আপলোড, ডাউনলোড, মুছে ফেলা এবং স্টোরেজের মধ্যে ফাইলের অবস্থান পরিবর্তন করা যায়।
লারাভেলে ফাইল আপলোডের প্রক্রিয়া সহজ এবং সরল। সাধারণত ফর্মের মাধ্যমে ফাইল আপলোড করা হয় এবং তারপর Storage
ফ্যাসাড ব্যবহার করে ফাইলটি স্টোর করা হয়।
use Illuminate\Support\Facades\Storage;
public function store(Request $request)
{
// ফাইল আপলোড করা
$path = $request->file('file')->store('files');
// ফাইলের পাথ রিটার্ন করা
return $path;
}
এই উদাহরণে store()
মেথড ফাইলটি files
ডিরেক্টরিতে সংরক্ষণ করবে।
আপনি যদি একটি আপলোড করা ফাইলের পূর্ণ পাথ দেখতে চান, তবে Storage::path()
মেথড ব্যবহার করতে পারেন। উদাহরণ:
$path = Storage::path('files/example.jpg');
এটি ফাইলের পূর্ণ পাথ প্রদান করবে।
লারাভেলে ফাইল ডাউনলোড করতে download()
মেথড ব্যবহার করা হয়। এটি ফাইলটি ক্লায়েন্ট ব্রাউজারে ডাউনলোড করার জন্য সরবরাহ করে।
public function downloadFile($filename)
{
return Storage::download('files/' . $filename);
}
আপনি যদি জানতে চান যে কোনও ফাইল নির্দিষ্ট পাথের মধ্যে রয়েছে কি না, তবে exists()
মেথড ব্যবহার করতে পারেন:
if (Storage::exists('files/example.jpg')) {
// ফাইল পাওয়া গেছে
}
লারাভেলের config/filesystems.php
কনফিগারেশন ফাইলে আপনি ডিফল্ট স্টোরেজ ড্রাইভ নির্বাচন করতে পারবেন। এখানে বিভিন্ন ধরনের ড্রাইভ কনফিগার করা থাকে যেমন local
, s3
, ftp
ইত্যাদি।
'default' => env('FILESYSTEM_DISK', 'local'),
এখানে local
ড্রাইভ ডিফল্ট হিসেবে কনফিগার করা আছে, কিন্তু আপনি চাইলে অন্য ড্রাইভও ব্যবহার করতে পারেন।
লারাভেল ক্লাউড স্টোরেজে ফাইল আপলোড করতে আপনাকে প্রথমে config/filesystems.php
ফাইলে ক্লাউড স্টোরেজের কনফিগারেশন সেট করতে হবে। উদাহরণস্বরূপ, যদি আপনি Amazon S3 ব্যবহার করতে চান:
's3' => [
'driver' => 's3',
'key' => env('AWS_ACCESS_KEY_ID'),
'secret' => env('AWS_SECRET_ACCESS_KEY'),
'region' => env('AWS_DEFAULT_REGION'),
'bucket' => env('AWS_BUCKET'),
],
এবার, ফাইল আপলোড করতে Storage::disk('s3')->put()
মেথড ব্যবহার করতে হবে:
Storage::disk('s3')->put('files/example.jpg', file_get_contents($request->file('file')));
লারাভেল আপনাকে ক্লাউড স্টোরেজ যেমন Amazon S3
, Google Cloud
, এবং অন্যান্য সার্ভিসে ফাইল সংরক্ষণ করার সুবিধা দেয়। এই সুবিধা ব্যবহার করে আপনি সহজেই বড় পরিমাণের ফাইল স্টোর করতে পারেন যা আপনার লোকাল সার্ভারে সম্ভব নয়।
লারাভেল ফাইল স্টোরেজ সিস্টেমের মাধ্যমে ফাইল আপলোড এবং ব্যবস্থাপনা অনেক সহজ এবং কার্যকরী হয়। এটি ডেভেলপারদের বিভিন্ন স্টোরেজ মাধ্যম যেমন লোকাল ড্রাইভ, FTP, ক্লাউড স্টোরেজ ব্যবহার করে ফাইল পরিচালনা করতে সাহায্য করে।